#ifndef STAGFS_STRUCTS_H
#define STAGFS_STRUCTS_H

#include <linux/types.h>
#include <linux/time.h>

struct stagfs_header
{
  __u8  timespecsize;
  __u16 blocksize;
  __u32 file_table_size;
  __u32 tag_table_size;
};

struct stagfs_file
{
  __u64           whirlpool_hash;
  __u64           first_block;
  __u64           length;
  struct timespec atime;
  struct timespec mtime;
  struct timespec ctime;
};

struct stagfs_tag
{
  // this is dynamically allocated
  char     *tag;
  __u64 *file_indexes;
};

#endif